/**
 * ---------------------------
 * Time: 2017/8/6 23:14.
 * Author: Cangshi
 * View: http://palerock.cn
 * ---------------------------
 */
define(
    ['app', '../../accident-dao'],
    function (app, AccidentDao) {
        app.factory('accidentDao', function (INDEXED_DB, PromiseUtil) {

            // init
            var accidentDao = INDEXED_DB.accidentDao = new AccidentDao();
            var dexieDB = INDEXED_DB.dexieDB;
            var accidents = dexieDB.safetyAccident;

            /**
             * 查询所有的安全事故
             * @param cb
             */
            accidentDao.findAllAccidents = function (cb) {
                var promise = accidents.toArray();
                PromiseUtil.parserCallBack(promise, cb, '查询所有的安全事故');
            };

            /**
             * 通过事故id查询安全事故
             * @param accidentId
             * @param cb
             */
            accidentDao.findAccidentById = function (accidentId, cb) {
                var promise = accidents.where('accidentId').equals(accidentId).toArray();
                PromiseUtil.parserCallBack(promise, cb, '通过事故id=\'' + accidentId + '\'查询安全事故');
            };

            /**
             * 添加安全事故
             * @param accident
             * @param cb
             */
            accidentDao.insertAccident = function (accident, cb) {
                var promise = accidents.add(accident);
                PromiseUtil.parserCallBack(promise, cb, '添加安全事故');
            };

            /**
             * 删除安全事件
             * @param accidentId 事件id
             * @param cb
             */
            accidentDao.deleteAccident = function (accidentId, cb) {
                var promise = accidents.delete(accidentId);
                PromiseUtil.parserCallBack(promise, cb, '删除安全事故[id = ' + accidentId + ']');
            };

            return accidentDao;
        })
    }
);